package edu.wust;

public class exam12 {

        public static boolean isPrime(long num){
            if(num==1)
                return false;
            if(num==2)
                return true;
            double temp=Math.sqrt(num);
            for(int i=2;i<temp;i++){
                if(num%i==0)
                    return false;
            }
            return true;

        }
        public static void main(String[] args) {
            long data=1;
            for(long i=2;;i++){
                data+=i;    //data是自然数加起来的数
                long temp=data,num=2;  //temp代替data进行剩下的操作，num=2代表是开始的素数
                int countend=2,counttemp=0;//countend是最后的所有因子和，counttemp是对素数的指数进行记录
                while(isPrime(temp)==false){
                    if(temp%num==0){
                        temp=temp/num;
                        counttemp++;
                    }
                    else{
                        if(num==2)num++;
                        else num+=2;
                        while(isPrime(num)==false)num+=2;
                        counttemp=0;
                    }
                    if(temp%num!=0){
                        countend*=(counttemp+1);
                    }
                }
                if(countend>500){
                    System.out.println(data);
                    break;
                }
            }



}}
